/*
 * @Author: HeAo
 * @Date: 2022-09-14 10:23:59
 * @LastEditTime: 2022-09-15 19:04:50
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \第二阶段\ES6\day02\4-箭头函数.js
 * 别乱动！
 */


// module.exports.name = 'zhangsan'; //module.exports 指当前模块 
// name = 'zhangsan'
// let sayName = function () {
//   console.log(this); // {}
//   console.log(this.name); // undefined

//   // 箭头函数没有this
//   // 内部this指向声明箭头函数时外部作用域中得this
// }
// sayName()

// --------

// let name = 'larry'
// let age = 12

// let obj = {
//   name,
//   age,
//   // 1.es5 函数
//   // sayName:function(){
//   //   console.log(this.name);
//   // },

//   // 2.es6 函数
//   sayName() {
//     console.log(this.name);
//   },

//   // 3、箭头函数  箭头函数没有this 内部this指向声明箭头函数时外部
//   say: () => {
//     return () => {
//       console.log(this.name); //zhangsan  this指向module.exports
//     }
//   }
//   // 箭头函数在obj中声明， obj的上一层是module.exports  而不是node

//   // 4、
//   // sayName() {
//   //   return sayName
//   // }
// }
// -------------------------------------
// //例4
// var obj1 = {
//   name: 'tom',
//   sayName: function () {
//     return () => {
//       console.log(this.name);
//     }
//   }
// }
// obj1.sayName()() //tom

var obj1 = {
  name: 'tom',
  sayName: () => {
    return () => {
      console.log(this.name);
    }
  }
}
obj1.sayName()() //undefined

// obj.sayName()
// obj.say()()